package com.liang.design;

import org.itstack.demo.design.Status;

/**
 * @author lsm
 * @ClassName State.java
 * @Description TODO
 * @createTime 2023年12月05日 22:19:00
 */
public abstract class State {

    /**
      * 活动提审
      *
      * @param activityId 活动ID
      * @param currentStatus 当前状态
      * @return 执⾏行行结果
      */
    public abstract Result arraignment(String activityId, Enum<Status> currentStatus);

    /**
     * 审核通过
     *
     * @param activityId 活动ID
     * @param currentStatus 当前状态
     * @return 执⾏行行结果
     */
    public abstract Result checkPass(String activityId, Enum<Status> currentStatus);
    /**
     * 审核拒绝
     *
     * @param activityId 活动ID
     * @param currentStatus 当前状态
     * @return 执⾏行行结果
     */
    public abstract Result checkRefuse(String activityId, Enum<Status> currentStatus);
    /**
     * 撤审撤销
     *
     * @param activityId 活动ID
     * @param currentStatus 当前状态
     * @return 执⾏行行结果
     */
    public abstract Result checkRevoke(String activityId, Enum<Status> currentStatus);
    /**
     * 活动关闭
     *
     * @param activityId 活动ID
     * @param currentStatus 当前状态
     * @return 执⾏行行结果
     */
    public abstract Result close(String activityId, Enum<Status> currentStatus);

    /**
     * 活动开启
     *
     * @param activityId 活动ID
     * @param currentStatus 当前状态
     * @return 执⾏行行结果
     */
    public abstract Result open(String activityId, Enum<Status> currentStatus);
    /**
     * 活动执⾏行行
     *
     * @param activityId 活动ID
     * @param currentStatus 当前状态
     * @return 执⾏行行结果
     */
    public abstract Result doing(String activityId, Enum<Status> currentStatus);
}
